package net.projecteuler.prob;

import java.util.Arrays;
import java.util.List;

import net.projecteuler.util.DigitUtil;
import net.projecteuler.util.PrimeUtil;

public class Problem49 implements Runnable {

	@Override
	public void run() {
		List<Integer> primeList = PrimeUtil.PrimeList;
		
		for(int i = 169; i < 1228; i++){
			for(int j = 168; j < i; j++){
				int prime1 = primeList.get(j);
				int prime2 = primeList.get(i);
				
				int prime3 = prime2 + prime2 - prime1;
				if(PrimeUtil.isPrime(prime3) && prime3 < 10000){
					int[] digits1 = DigitUtil.digits(prime1);
					int[] digits2 = DigitUtil.digits(prime2);
					int[] digits3 = DigitUtil.digits(prime3);
					
					Arrays.sort(digits1);
					Arrays.sort(digits2);
					Arrays.sort(digits3);
					
					if(digits1[0] != digits2[0] || digits1[0] != digits3[0])
						continue;
					
					if(digits1[1] != digits2[1] || digits1[1] != digits3[1])
						continue;
					
					if(digits1[2] != digits2[2] || digits1[2] != digits3[2])
						continue;
					
					if(digits1[3] != digits2[3] || digits1[3] != digits3[3])
						continue;
					
					System.out.println(prime1 + "-" + prime2 + "-" + prime3);
				}
			}
		}
	}

}

